package rdd.split;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

import java.util.Arrays;
import java.util.List;

public class Scala28_Disk_Split {
    public static void main(String[] args) {
        final SparkConf conf = new SparkConf();
        conf.setMaster("local[*]");                             //我的电脑是8核，应该有8个分区
        conf.setAppName("spark");
        conf.set("spark.default.parallelism","4");              //设置分区的默认值为4

        final JavaSparkContext jsc = new JavaSparkContext(conf);
        //final JavaSparkContext jsc1 = new JavaSparkContext("local","spark");        //可以不传入spark配置对象，可以直接当作参数输入
        final JavaRDD<String> rdd = jsc.textFile("data/test.txt",2);   //虽然定义了2个分区
        //但是txt文件中的数据的结构是
        // 1 CR|LF
        // 2 CR|LF
        // 3
        // CR|LF是回车换行，占用两个字节，所以文件一共是7个字节
        //我们预设2个分区，7/2，每个分区3个字节
        //但是实际7/3=2....1，所以会实际产生三个分区
        rdd.saveAsTextFile("output");
    }
}
